package com.atguigu.java;

import org.junit.Test;

import java.io.FileInputStream;
import java.util.Properties;

/**
 * @author : leimingchao
 * @Description:
 * @date Date : 2021年06月13日 12:05
 */
public class ClassLoaderTest {

    @Test
    public void test() {
        //对于自定义类，使用系统类加载器进行加载
        ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        System.out.println(classLoader);
        //调用系统类加载器的getParent():获取扩展类加载器
        ClassLoader classLoader1 = classLoader.getParent();
        System.out.println(classLoader1);
        //调用扩展类加载器的getParent()：无法获取引导类加载器
        //引导类加载器主要负责加载java的核心类库，无法加载自定义的类
        ClassLoader classLoader2 = classLoader1.getParent();
        System.out.println(classLoader2);
        ClassLoader classLoader3 = String.class.getClassLoader();
        System.out.println(classLoader3);
    }

    /**
     * Properties:用来读取配置文件
     */
    @Test
    public void test2() throws Exception {
        Properties properties = new Properties();
        // 此时的文件在当前的module下
        //读取配置文件方式一：
        // FileInputStream fileInputStream = new FileInputStream("jdbc.properties");
        FileInputStream fileInputStream = new FileInputStream("src\\jdbc1.properties");
        properties.load(fileInputStream);

        //读取配置文件方式二：使用ClassLoader
        //配置文件默认识别为：当前module的src下
        // ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
        // InputStream inputStream = classLoader.getResourceAsStream("jdbc1.properties");
        // properties.load(inputStream);
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        System.out.println("user = " + user + " ,password = " + password);
    }
}
